home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / utils / console / svgatext.3 / svgatext / SVGATextMode-1.3 / wait_vsync.h < prev   
Encoding:
C/C++ Source or Header  |  1996-03-06  |  1.9 KB  |  53 lines

  1. /*  SVGATextMode -- An SVGA textmode manipulation/enhancement tool
  2.  *
  3.  *  Copyright (C) 1995,1996  Koen Gadeyne
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with this program; if not, write to the Free Software
  17.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19.  
  20. /***
  21.  *** wait_vsync.h: non-blocking V-sync wait routine (doesn't hang when no VSYNC)
  22.  ***/
  23.  
  24. #ifndef _WAIT_VSYNC_H
  25. #define _WAIT_VSYNC_H 
  26.  
  27. #define USE_VSYNC
  28.  
  29. #ifdef USE_VSYNC
  30. #  define waitframe \
  31.                    while ( !(inb(STATUS1) & 0x08) && !vtimeout ); /* wait during active display */ \
  32.                    while ( (inb(STATUS1) & 0x08) && !vtimeout ) /* now wait during vert retrace */
  33.  
  34. #  define wait_vblk \
  35.                    while ( (inb(STATUS1) & 0x08) && !vtimeout ); /* wait during vert retrace */ \
  36.                    while ( !(inb(STATUS1) & 0x08) && !vtimeout )  /* wait during active display */
  37. #else   /* doesn't work. dunno why */
  38. #  define waitframe \
  39.                    while ( (inb(STATUS0)) && !vtimeout ); /* wait during active display */ \
  40.                    while ( !(inb(STATUS0)) && !vtimeout ) /* now wait during vert retrace */
  41.  
  42. #  define wait_vblk \
  43.                    while ( !(inb(STATUS0)) && !vtimeout ); /* wait during vert retrace */ \
  44.                    while ( (inb(STATUS0)) && !vtimeout )  /* wait during active display */
  45. #endif
  46.  
  47. extern bool vtimeout;
  48. int safe_wait_vsync();
  49.  
  50. #endif
  51.  
  52.  
  53.